a11y: Don't do unnecessary work
authorMatthias Clasen <mclasen@redhat.com>
Tue, 4 Aug 2020 15:02:00 +0000 (11:02 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Tue, 4 Aug 2020 15:02:00 +0000 (11:02 -0400)
Only serialize all the attributes if we are actually
going to print them.

gtk/gtktestatcontext.c

index ff0b6833fd81458fde0bdbf2cc7b01cc1fe2ec02..e1bf0f5d1d8c7e7a4b960060363ab4b03f8eea8b 100644 (file)
@@ -49,16 +49,16 @@ gtk_test_at_context_state_change (GtkATContext                *self,
                                   GtkAccessibleAttributeSet   *properties,
                                   GtkAccessibleAttributeSet   *relations)
 {
-  char *states_str = gtk_accessible_attribute_set_to_string (states);
-  char *properties_str = gtk_accessible_attribute_set_to_string (properties);
-  char *relations_str = gtk_accessible_attribute_set_to_string (relations);
-
-  GTK_NOTE(A11Y,
+  if (GTK_DEBUG_CHECK (A11Y))
     {
+      char *states_str = gtk_accessible_attribute_set_to_string (states);
+      char *properties_str = gtk_accessible_attribute_set_to_string (properties);
+      char *relations_str = gtk_accessible_attribute_set_to_string (relations);
       GtkAccessibleRole role = gtk_at_context_get_accessible_role (self);
       GtkAccessible *accessible = gtk_at_context_get_accessible (self);
       GEnumClass *class = g_type_class_ref (GTK_TYPE_ACCESSIBLE_ROLE);
       GEnumValue *value = g_enum_get_value (class, role);
+
       g_print ("*** Accessible state changed for accessible ā€œ%sā€, with role ā€œ%sā€ (%d):\n"
            "***     states = %s\n"
            "*** properties = %s\n"
@@ -70,11 +70,11 @@ gtk_test_at_context_state_change (GtkATContext                *self,
            properties_str,
            relations_str);
       g_type_class_unref (class);
-    });
 
-  g_free (states_str);
-  g_free (properties_str);
-  g_free (relations_str);
+      g_free (states_str);
+      g_free (properties_str);
+      g_free (relations_str);
+    }
 }
 
 static void